1
Lezione 7: Introduzione ai Moduli Python
EvoClass-AI001Lezione 7
00:00

Introduzione ai Moduli Python

In Python, un Modulo è un file che termina con .pyche funge da contenitore per componenti di codice riutilizzabili (funzioni, classi, variabili). I moduli sono la base dell'architettura dei programmi su larga scala, consentendo agli sviluppatori di gestire la complessità e migliorare la manutenzione del codice separando logicamente le definizioni. Questo processo è simile a come i concetti matematici vengono suddivisi in campi specializzati (ad esempio, $f(x)$ è definito in un dominio specifico $D$).

1. Lo scopo del Modulo

I moduli soddisfano tre esigenze fondamentali nello sviluppo:

  • Promuovendo Riuso del Codicein molti progetti senza dover riscrivere le definizioni.
  • Garantendo chiarezza e organizzazione suddividendo i programmi grandi in file gestibili e correlati.
  • Evitando Collisioni di nomidefinendo spazi dei nomi separati per funzioni e variabili.

Esempio concettuale:

Immagina di avere un file chiamato utility.pycontenente funzioni per calcolare risultati matematici. Tutto questo file è il modulo, e queste funzioni ne sono il contenuto accessibile.

2. Metodi di Importazione

L'istruzione Python importrende disponibili alle tue istruzioni correnti le definizioni esterne. Il metodo scelto determina come accedere ai componenti e come viene influenzato lo spazio dei nomi del programma corrente.

  • Importazione Standard:import nome_modulo. Richiede l'accesso al contenuto tramite nome_modulo.funzione().
  • Importazione Selettiva:da modulo import funzione. Permette l'uso diretto di funzione()senza il prefisso del modulo.
  • Importazione con Alias:import modulo comealias. Fornisce un nome corto e specifico al progetto per comodità (ad esempio, importa numpy come np).
Focus sulla Libreria Standard
Python include una vasta Libreria Standarddi moduli predefiniti (come 'os', 'sys', 'random', 'math'). Imparare ad utilizzare questi moduli riutilizzabili è essenziale per uno sviluppo efficiente e risparmia molto tempo.
Domanda 1
Se usi importa math, come devi chiamare la sqrtfunzione per calcolare $\sqrt{25}$?
sqrt(25)
math.sqrt(25)
math::sqrt(25)
usa math sqrt
Domanda 2
Quale vantaggio dell'utilizzo dei moduli affronta il problema di avere più funzioni chiamate process_data in un'applicazione grande?
Velocità di esecuzione del codice
Evitare Collisioni di Nomi
Debug automatico
Domanda 3
Cosa succede a un file modulo la seconda volta che tenti di importimportarlo nello stesso programma in esecuzione?
Viene importato nuovamente, eseguendo tutto il codice di livello superiore.
L'importazione fallisce con un errore.
Python riconosce che è già caricato e salta l'esecuzione.
Vengono ricaricate solo le variabili.